<template>
  <div>
    <Header title="综合得分报表"></Header>
    <div class="page__main bg-white">
      <div class="page__scroller">
        <div class="water-mark-wrap" style="height: 100%">
          <div class="title-bg">
            {{datePicker.showData}}绩效考核模拟测算得分
            <button type="button" class="title-bg__btn" @click="tipDialog.show = true"></button>
          </div>
          <!--tab页签-->
          <van-tabs v-model="tabActiveName" class="init-tabs resolve-tabs" sticky :offset-top="89" @click="handleTabClick">
            <van-tab name="a" title="省分">
            </van-tab>
            <van-tab name="b" title="地市">
            </van-tab>
          </van-tabs>
          <!--日期-地域 选择框-->
          <van-sticky :offset-top="46">
            <div class="pd-aside bg-white" style="padding-top: 10px;width: 78%;float: left">
              <div class="selects" style="margin-bottom: 0">
                <div class="selects__item" @click="chooseDate">
                  {{datePicker.showData}}
                </div>
                <div class="selects__item" @click="chooseCity('province')" v-if="tabActiveName == 'b'">
                  {{areaInfo.showArea}}
                </div>
                <div class="selects__item" @click="chooseCity('city')" v-if="tabActiveName == 'b'">
                  {{cityInfo.showArea}}
                </div>
              </div>
            </div>
            <div style="padding-top: 10px;width: 15%;float: left">
              <div class="option__btn" @click="selectOptionData.show = true">筛 选</div>
            </div>
          </van-sticky>
          <div style="height: calc(100% - 175px);position: initial;bottom: 0;padding-top: 45px;width: 95%;margin-left: 10px;margin-right: 10px;" v-show="provinceTableData.show">
            <ProvinceTable :data="provinceTableData" v-show="provinceTableData.show"></ProvinceTable>
          </div>
          <div style="height: calc(100% - 212px);position: initial;padding-top: 45px;width: 95%;margin-left: 10px;margin-right: 10px;" v-show="cityTableData.show">
            <CityTable :data="cityTableData" v-show="cityTableData.show"></CityTable>
            <van-pagination
              v-model="cityTableData.page"
              :page-count="cityTableData.total"
              :items-per-page="cityTableData.pageRows"
              @change="nextText"
              mode="simple"
              v-show="cityTableData.show"
            />
          </div>


        </div>
      </div>
      <van-overlay class="page-loading" :show="pageLoading" :duration="0">
        <div class="wrapper">
          <van-loading size="34px" vertical>数据加载中...</van-loading>
        </div>
      </van-overlay>
    </div>
    <van-popup
      v-model="datePicker.show"
      position="bottom"
      :style="{ height: '40%' }"
    >
      <van-datetime-picker
        v-model="datePicker.currentDate"
        type="year-month"
        :min-date="datePicker.minDate"
        :max-date="datePicker.maxDate"
        :formatter="formatter"
        @cancel="handleCanleDate"
        @confirm="handleConfirmDate"
      ></van-datetime-picker>
    </van-popup>
    <van-popup
      v-model="areaInfo.show"
      position="bottom"
      :style="{ height: '40%' }"
    >
      <van-picker
        show-toolbar
        :columns="areaInfo.columns"
        :defaultIndex='areaInfo.defaultIndex'
        @cancel="cancelFn('province')"
        @confirm="confirmFnProvince"
      ></van-picker>
    </van-popup>
    <van-popup
      v-model="cityInfo.show"
      position="bottom"
      :style="{ height: '40%' }"
    >
      <van-picker
        show-toolbar
        :columns="cityInfo.columns"
        :defaultIndex='cityInfo.defaultIndex'
        @cancel="cancelFn('city')"
        @confirm="confirmFnCity"
      ></van-picker>
    </van-popup>
    <div class="tip-dialog" v-show="tipDialog.show">
      <div class="tip-dialog__main">
        <div class="tip-dialog__header">
          指标说明
          <button type="button" class="tip-dialog__close" @click="tipDialog.show = false"></button>
        </div>
        <div class="tip-dialog__body">
          <div class="tip-dialog__list">
            <div class="tip-dialog__item" v-for="(item, index) in tipDialog.list" :key="index">
              <div class="tip-dialog__item-title">{{item.title}}</div>
              <div class="tip-dialog__item-intro" v-show="item.intro != undefined">{{item.intro}}</div>
              <div class="tip-dialog__item-detail" v-show="item.detail != undefined">{{item.detail}}</div>
            </div>
          </div>
          <div class="footer-tip">了解更多信息，请登录PC端运营数据展示系统</div>
        </div>
      </div>
    </div>
    <div class="option-page" v-show="selectOptionData.show">
        <div class="option-page-main">
            <div class="option-page-title">排序</div>
          <div>
            <div class="option-page-tab" v-for="(item, index) in selectOptionData.orderOptionData.data" :key="index">
              <div class="option-page-btn" :class="changeOptionClass(1,index)" @click="selectOptionChange(1,index)">{{item.text}}</div>
            </div>
          </div>
          <div class="option-page-title" v-show="selectOptionData.classifyOptionData.show">类别</div>
          <div v-show="selectOptionData.classifyOptionData.show">
            <div class="option-page-tab" v-for="(item, index) in selectOptionData.classifyOptionData.data" :key="index">
              <div class="option-page-btn" :class="changeOptionClass(2,index)" @click="selectOptionChange(2,index)">{{item.text}}</div>
            </div>
          </div>
          <div class="option-page-define" @click="selectOptionClick">确 定</div>
        </div>
    </div>
  </div>
</template>
<script>
  import Header from "@/components/Header"
  import RankList from "./RankList"
  import RadarChart from "./RadarChart"
  import TopRankList from "./TopRankList"
  import ProvinceTable from "./ProvinceTable"
  import CityTable from "./CityTable"
  export default {
    components: {
      Header,
      RadarChart,
      RankList,
      TopRankList,
      ProvinceTable,
      CityTable,
    },
    data(){
      return {
        tabActiveName: 'a',
        areaId: this.$store.state.userInfo.home_city,
        areaType: '',
        userInfo: this.$store.state.userInfo,
        role:sessionStorage.role,
        control_date: '',
        pageLoading:true,
        datePicker: {
          showData: '--年--月',
          selectDate: '',
          show: false,
          currentDate: new Date(),
          minDate: new Date(),
          maxDate: new Date(),
        },
        areaInfo: {
          show: false,
          defaultIndex: 0,
          showArea: '',
          selectId: this.$store.state.userInfo.home_city,
          columns: []
        },
        cityInfo: {
          show: false,
          defaultIndex: 0,
          showArea: "地市",
          selectId: "0",
          columns: []
        },
        tipDialog: {
          show: false,
          list: []
        },
        selectOptionData:{
          show:false,
          orderOptionData:{
            show:true,
            selectIndex:2,
            selectId:2,
            data:[]
          },
          classifyOptionData:{
            show:false,
            selectIndex:0,
            data:[]
          }
        },
        provinceTableData: {
          show:false,
          showDate:'',
          data:[],
          columnShow:true
        },
        cityTableData: {
          show:false,
          showDate:'',
          data:[],
          page:1,
          pageRows:100,
          total:2,
          columnShow:true
        },
        tabClickNum:0
      }
    },
    methods: {
      //记录日志
      recordLogs() {
        let params = {
          userId: this.userInfo.user_id,
          verify_code: this.userInfo.verify_code,
          priv_id: '10101132',
        }

        this.$http.post("api/new/insertLogs", params).then(res => {})
      },
      //获得时间域
      getMaxMinMonth() {
        function dateSplit(param) {
          let paramStr = param + ''
          let dateArr = paramStr.replace(/(.{4})/g,'$1,').split(',')
          return dateArr
        }
        return new Promise((resolve, reject) => {
          /*this.$http.post('/api/yearCheckIndex/maxMonth', {type: '4'}).then(data => {
            let max = data.maps[0].MAX_MONTH;
            let min = data.maps[0].MIN_MONTH;

            let maxYear = dateSplit(max)[0];
            let maxMonth = dateSplit(max)[1];
            let minYear = dateSplit(min)[0];
            let minMonth = dateSplit(min)[1];
            let actualMaxMonth = parseInt(maxMonth) - 1;
            let actualMinMonth = parseInt(minMonth) - 1;
            let showMaxMonth = maxMonth[0] == '0' ? maxMonth[1] : maxMonth;

            this.datePicker.currentDate = new Date(maxYear, actualMaxMonth);
            this.datePicker.minDate = new Date(minYear, actualMinMonth);
            this.datePicker.maxDate = new Date(maxYear, actualMaxMonth);

            this.datePicker.showData = maxYear + '年' + showMaxMonth + '月';
            this.datePicker.selectDate = maxYear + '' + maxMonth;

            if(max>this.control_date){
              this.avgDate = Number((this.control_date+'').substr(4,2))+'月';
            }

            resolve("ok")
          })*/
          let params1={
            date_type:'1',
            module_id:'0',
          }
          this.$http.post('/api/newTower/controlDate/qryControlDate', params1).then(data => {
            let switch_day = data.rows.col3;
            let switch_month = data.rows.col4;
            let nowDate = new Date();
            let now_day = nowDate.getDate();
            let now_month = nowDate.getMonth()+1;
            let now_year = nowDate.getFullYear();
            let day,month,year,max_,min_;
            if(now_day>=switch_day){
              if(now_month == 1){
                month = 12;
                year = now_year -1;
              }else {
                month = now_month-1;
                year = now_year;
              }
            }else {
              if(now_month == 1){
                month = 11;
                year = now_year -1;
              }else if(now_month == 2){
                month = 12;
                year = now_year -1;
              }else {
                month = now_month-2;
                year = now_year;
              }
            }
            if(month<10){
              month = '0'+month;
            }
            max_ = year + '' + month;
            let max = max_;
            let min = 201801;
            let params2={
              date_type:'1',
              module_id:'1',
              today:max_
            }
            this.$http.post('/api/newTower/controlDate/qryControlDate', params2).then(data => {
              if(data.rows == null || data.rows ==undefined){
                this.control_date = max_
              }else {
                this.control_date = data.rows.col4;
              }
              max = this.control_date;
              let maxYear = dateSplit(max)[0];
              let maxMonth = dateSplit(max)[1];
              let minYear = dateSplit(min)[0];
              let minMonth = dateSplit(min)[1];
              let actualMaxMonth = parseInt(maxMonth) - 1;
              let actualMinMonth = parseInt(minMonth) - 1;
              let showMaxMonth = maxMonth[0] == '0' ? maxMonth[1] : maxMonth;

              this.datePicker.currentDate = new Date(maxYear, actualMaxMonth);
              this.datePicker.minDate = new Date(minYear, actualMinMonth);
              this.datePicker.maxDate = new Date(maxYear, actualMaxMonth);

              this.datePicker.showData = maxYear + '年' + showMaxMonth + '月';
              this.datePicker.selectDate = maxYear + '' + maxMonth;

              this.provinceTableData.showDate = maxYear + '年1-' + showMaxMonth + '月省级分公司绩效考核模拟测算得分';
              this.cityTableData.showDate = maxYear + '年1-' + showMaxMonth + '月地市公司绩效评价模拟计算得分表';

              resolve("ok")
            })

          })
        })

      },
      //显示地市弹框
      chooseCity(area) {
        if (area == 'province') {
          this.areaInfo.show = true
        } else if (area == 'city') {
          this.cityInfo.show = true
        }
      },
      //取消地市弹框
      cancelFn(area) {
        if (area == 'province') {
          this.areaInfo.show = false
        } else if (area == 'city') {
          this.cityInfo.show = false
        }
      },
      //确认省份
      confirmFnProvince(item, index) {
        if (this.areaInfo.selectId != item.id) {
          this.areaInfo.selectId = item.id
          this.areaId = item.id
          this.areaInfo.showArea = item.text
          this.cityInfo.columns = []
          this.cityInfo.showArea = '地市'
          if (this.role == 'province') {
            if (this.areaId != '100000') {
              this.areaInfo.columns = []
              this.getAreaInfo()
            } else {
              this.cityInfo.columns = [{text: '地市', id: '0'}]
            }
          } else {
            this.getAreaInfo()
          }
          this.loadPage();
        }
        this.areaInfo.show = false
      },
      //确认地市
      confirmFnCity(item, index) {
        if (this.cityInfo.selectId != item.id) {
          this.cityInfo.selectId = item.id
          this.cityInfo.showArea = item.text
          if (this.cityInfo.selectId != '' && this.cityInfo.selectId != 0) {
            this.areaId = item.id
          } else {
            this.areaId = this.areaInfo.selectId
          }
          this.loadPage();
        }
        this.cityInfo.show = false
      },
      //格式化时间
      formatter(type, value) {
        if (type === 'year') {
          return `${value}年`;
        } else if (type === 'month') {
          return `${value}月`
        }
        return value;
      },
      //日期选择
      chooseDate() {
        this.datePicker.show = true
      },
      //取消日期设置
      handleCanleDate() {
        this.datePicker.show = false
      },
      //选择日期
      handleConfirmDate(value) {
        this.handleCanleDate()
        let date = new Date(value)
        let year = date.getFullYear()
        let month = date.getMonth() + 1
        let month1 = month < 10 ? '0' + month : month
        let chooseDate = year + '' + month1
        if (this.datePicker.selectDate != chooseDate) {
          this.datePicker.showData = year + '年' + month + '月';
          this.datePicker.selectDate = year + '' + month1;
          this.provinceTableData.showDate = year + '年1-' + month + '月省级分公司绩效考核模拟测算得分';
          this.cityTableData.showDate = year + '年1-' + month + '月地市公司绩效评价模拟计算得分表';
          if(this.datePicker.selectDate>=202109){
            this.provinceTableData.columnShow = true;
            this.cityTableData.columnShow = true;
          }else {
            this.provinceTableData.columnShow = false;
            this.cityTableData.columnShow = false;
          }
          this.loadPage();
        }
      },
      //获得全国各省列表
      getAreaInfo() {
        let params = {
          statMonth: this.datePicker.selectDate,
          areaId: this.areaId
        }

        this.$http
          .post("api/yearCheckIndex/getKpiAreaInfo", params)
          .then(data => {
            //获取省会
            if (data.rows.length > 1) {
              this.areaInfo.columns = []
              data.rows.forEach(item => {
                this.areaInfo.columns.push({
                  text: item.area,
                  id: item.areaId
                })
              })
              this.areaInfo.columns.unshift({ text: "全国", id: "100000" })
              this.cityInfo.columns.unshift({ text: "地市", id: "0" })
              this.areaInfo.showArea = '全国'
            }
            //获取地市
            if (data.rows2.length > 1) {
              this.cityInfo.columns = []
              data.rows2.forEach(item => {
                this.cityInfo.columns.push({
                  text: item.area,
                  id: item.areaId
                });
              });
              this.cityInfo.columns.unshift({ text: "地市", id: "0" })
              this.areaInfo.selectId = data.rows[0].areaId
              this.areaInfo.showArea = data.rows[0].area
              if (this.role == "province") {
                this.areaInfo.columns.push(
                  {
                    text: data.rows[0].area,
                    id: data.rows[0].areaId
                  }
                )
                this.areaInfo.defaultIndex = 1
              }
            } else if (data.rows2.length == 1 ) {
              if (this.role == "city") {
                this.areaInfo.selectId = data.rows[0].areaId
                this.areaInfo.showArea = data.rows[0].area
                this.areaInfo.columns = [
                  {
                    text: data.rows[0].area,
                    id: data.rows[0].areaId
                  }
                ]
                this.cityInfo.selectId = data.rows2[0].areaId
                this.cityInfo.showArea = data.rows2[0].area
                this.cityInfo.defaultIndex = 1
                this.cityInfo.columns = [
                  {
                    text: data.rows2[0].area,
                    id: data.rows2[0].areaId
                  }
                ]
              }
            }
          });
      },
      //tab切换
      handleTabClick(name, title) {
        if(name == 'b'){
          this.tabClickNum = this.tabClickNum+1;
        }
        this.initPage();
      },
      initPage(){
        if(this.areaId=='100000'){
          this.areaType = 0;
        }else if(this.areaId.substr(-4) == '0000'){
          this.areaType = 1;
        }else {
          this.areaType = 2;
        }
        this.pageLoading = true;
        if(this.tabActiveName == 'a'){
          this.selectOptionData.orderOptionData.selectIndex = 2;
          this.selectOptionData.orderOptionData.data = [
            {id:0,text:'总分'},
            {id:1,text:'省分'},
            {id:2,text:'综评规模'},
          ]
          this.selectOptionData.classifyOptionData.show=false;

          this.cityTableData.show = false;

          this.tipDialog.list=[
            {
              title: '业务发展-小计',
              intro: '业务发展-小计=收入增长率得分+营收款欠款占收比扣分+代垫电费欠款比率扣分+投资增收比得分+EBITDA率扣分'
            },
            {
              title: '收入增长率得分',
              // detail: '营业收入增长率达到6.5%时，得35分，每超过1个百分点加1分，线性加分，最多加7分； 营业收入增长率低于6.5%时，每低于1个百分点扣1分，线性扣分，最多扣7分'
              detail: '营业收入增长率达到6.5%时，得35分，每超过1个百分点加1分，线性加分； 营业收入增长率低于6.5%时，每低于1个百分点扣1分，线性扣分'
            },
            {
              title: '营收款欠款占收比扣分',
              detail: '营收款欠款比率小于或等于100%不扣分；营收款欠款比率超过100%，每高于10个百分点扣0.1分，不足10%的，线性扣分，最多扣5分。年底前回款超过95%的分公司减半扣分，其中营收款回款率=（本年1-12月累计已回款金额+次年1月已回款金额）/（年初未结算金额+本年1-12月累计应结算金额）×100%。'
            },
            {
              title: '代垫电费欠款比率扣分',
              detail: '代垫电费欠款比率小于或等于100%不扣分；代垫电费欠款比率超过100%，每高于10个百分点扣0.25分，不足10%的，线性扣分，最多扣5分。年底前回款超过95%的分公司减半扣分，其中代垫电费回款率=（本年1-12月累计已回款金额+次年1月已回款金额）/（年初未结算金额+本年1-12月累计应结算金额）×100%。'
            },
            {
              title: '投资增收比得分',
              // detail: '投资增收比达到18%，得满分15分，每高于1个百分点加0.4分，最多加4分；投资增收比未达到18%,每低于1个百分点扣1分，线性扣分，扣完为止'
              detail: '投资增收比达到18%，得满分15分，每高于1个百分点加0.4分，最多加4分；投资增收比未达到18%,每低于1个百分点扣1分，线性扣分，扣完为止。'
            },
            {
              title: 'EBITDA率扣分',
              detail: '与2020年相比，EBITDA率持平或上升的分公司不扣分；与2020年相比，EBITDA率下降的分公司，较2020年每下降1个百分点，按以下规则线性扣分，最多扣5分：扣分=（2020年EBITDA率全国平均值- 2020年EBITDA率本省值）×5+1；对于2020年高于全国平均EBITDA率水平的分公司，新增收入EBITDA率高于2020年全国平均值不扣分。'
            },
            {
              title: '经营效益-小计',
              intro: '经营效益-小计=资产报酬率得分+利润贡献率加分'
            },
            {
              title: '资产报酬率得分',
              // detail: '与2020年相比，资产报酬率改善达到0.4个百分点，得满分50分，超过或低于0.4个百分点按如下规则加扣分：与2020年相比，资产报酬率改善超过0.4个百分点，每超过0.1个百分点，按以下规则线性加分，最多加10分：加分=（2020年资产报酬率本省值-4.5%)×5+1；与2020年相比，资产报酬率改善低于0.4个百分点，每低于0.1个百分点，按以下规则线性扣分，最多扣10分：扣分= (4.5%-2020年资产报酬率本省值)×5+1'
              detail: '与2020年相比，资产报酬率改善达到0.4个百分点，得满分50分，超过或低于0.4个百分点按如下规则加扣分：与2020年相比，资产报酬率改善超过0.4个百分点，每超过0.1个百分点，按以下规则线性加分，最多加10分：加分=（2020年资产报酬率本省值-4.5%)×5+1；与2020年相比，资产报酬率改善低于0.4个百分点，每低于0.1个百分点，按以下规则线性扣分，最多扣10分：扣分= (4.5%-2020年资产报酬率本省值)×5+1'
            },
            {
              title: '利润贡献率加分',
              detail: '利润贡献率每1个百分点加1分，本年亏损且利润较上年下降的分公司不加分。'
            },
            {
              title: '总分',
              intro: '收入增长率得分+营收款欠款占收比扣分+代垫电费欠款比率扣分+投资增收比得分+EBITDA率扣分+资产报酬率得分+利润贡献率加分'
            },
            {
              title: '综合规模全国排名',
              intro: '综合规模全国排名=|营业收入（净额）|*50%+|EBIDTA值|*50%',
              detail: '值越大排名越靠前'
            },
            {
              title: '收入增长率(%)',
              intro: '营业收入增长率=（（本年营业收入完成值-运营商业务账龄超过一年的不含税应收营收款-两翼业务坏账准备本年净增额）-上年营业收入完成值）/上年营业收入完成值×100%。',
              detail: '其中：运营商业务账龄超过一年的不含税应收营收款是指运营商业务截至考核期末仍未回款的2020年及以前年度不含税应收营收款；两翼业务坏账准备本年净增额是指两翼业务按公司坏账准备管理办法在本年发生的坏账准备净增数额，以前年度已核销本年又收回的应收账款作为坏账准备转回视同收入增项处理；上年营业收入完成值以2020年财务报表决算审定数为比较基准值。'
            },
            {
              title: '投资增收比(%)',
              intro: '投资增收比=（2021年营业收入-2020年营业收入）/（2020年四季度资本性支出/2+2021年1至3季度资本性支出+2021年四季度资本性支出/2）×100%。',
              detail: '其中：资本性支出不含综合生产用房资本性支出；2021年1至3季度资本性支出中新增高铁、地铁和投资2000万元以上的大型网络覆盖项目等同4季度按一半计算，其他项目按全额计算; 安全整治项目投资中属于总部运营维护部核定的项目清单对应的2021年资本性支出，按50%剔除。注：其中北京、天津、河北、山西、内蒙古、辽宁、江苏、安徽、福建、江西、山东、河南、湖北、湖南、广东、广西、重庆、四川、陕西剔除能源收入及成本，其余省分不剔除'
            },

            {
              title: '营业收入净额(元)',
              detail: '营收款欠款比率=（∑（运营商业务本年各月1个月以上欠费余额）/12/运营商业务本年累计月平均出账含税收入）×运营商业务收入比重+（两翼业务累计欠费金额/两翼业务本年累计应收金额）×两翼业务收入比重。其中:运营商业务坏账准备余额从各月累加计算的欠费余额中一次性剔除；两翼业务累计欠费金额为按合同约定收款条件确定的营收款欠费累计数扣除坏账准备余额后的净额。注：其中北京、天津、河北、山西、内蒙古、辽宁、江苏、安徽、福建、江西、山东、河南、湖北、湖南、广东、广西、重庆、四川、陕西剔除能源收入及成本，其余省分不剔除'
            },
            {
              title: '营收款欠款比率(%)',
              intro: '营收款欠款比率=（∑（运营商业务本年各月1个月以上欠费余额）/12/运营商业务本年累计月平均出账含税收入）×运营商业务收入比重+（两翼业务累计欠费金额/两翼业务本年累计应收金额）×两翼业务收入比重。',
              detail: '其中:运营商业务坏账准备余额从各月累加计算的欠费余额中一次性剔除；两翼业务累计欠费金额为按合同约定收款条件确定的营收款欠费累计数扣除坏账准备余额后的净额。注：其中北京、天津、河北、山西、内蒙古、辽宁、江苏、安徽、福建、江西、山东、河南、湖北、湖南、广东、广西、重庆、四川、陕西剔除能源收入及成本，其余省分不剔除'
            },
            {
              title: '代垫电费欠款比率(%)',
              intro: '代垫电费欠款比率=（∑（本年各月一个月以上代垫电费应收款余额）/12 /本年累计月平均代垫电费额）×100%。'
            },
            {
              title: 'EBITDA率(%)',
              intro: 'EBITDA率=（利润总额+折旧及摊销+财务费用）/营业收入完成值×100%。注：其中北京、天津、河北、山西、内蒙古、辽宁、江苏、安徽、福建、江西、山东、河南、湖北、湖南、广东、广西、重庆、四川、陕西剔除能源收入及成本，其余省分不剔除'
            },
            {
              title: 'EBITDA(元)',
              intro: 'EBITDA=利润总额+财务费用+折旧摊销 '
            },
            {
              title: '资产报酬率(%)',
              intro: '资产报酬率=（利润总额+财务费用）/平均资产总额×100%。其中：平均资产总额=（上年末资产总额+本年末资产总额）/2。注：其中北京、天津、河北、山西、内蒙古、辽宁、江苏、安徽、福建、江西、山东、河南、湖北、湖南、广东、广西、重庆、四川、陕西剔除能源收入及成本，其余省分不剔除'
            },
            {
              title: '利润贡献率(%)',
              intro: '利润贡献率=利润改善贡献率×60%+利润规模贡献率×40%',
              detail: '其中：利润改善贡献率=（本省本年利润总额-本省上年利润总额）/利润改善为正分公司利润改善合计数；利润规模贡献率=本省本年利润总额/本年利润为正分公司利润总额合计数。注：其中北京、天津、河北、山西、内蒙古、辽宁、江苏、安徽、福建、江西、山东、河南、湖北、湖南、广东、广西、重庆、四川、陕西剔除能源收入及成本，其余省分不剔除\n'
            },
          ]
          this.getProvinceData();

        }else {
          this.selectOptionData.orderOptionData.selectIndex = 3;
          this.selectOptionData.classifyOptionData.show=true;
          this.selectOptionData.orderOptionData.data = [
            {id:0,text:'总分'},
            {id:1,text:'地市'},
            {id:2,text:'类别'},
            {id:3,text:'综评规模'},
          ]
          this.selectOptionData.classifyOptionData.data = [
            {id:0,text:'全部'},
            {id:1,text:'一类'},
            {id:2,text:'二类'},
            {id:3,text:'三类'},
            {id:4,text:'四类'},
          ]
          this.selectOptionData.classifyOptionData.selectIndex = 0;
          this.provinceTableData.show = false;

          this.tipDialog.list=[
            {
              title: '上年综合规模全国排名',
              intro: '上年综合规模全国排名=|上年12月营业收入（净额）|*50%+|上年12月EBIDTA值|*50% '
            },
            {
              title: '实时综合规模全国排名',
              intro: '实时综合规模全国排名=|营业收入（净额）|*50%+|EBIDTA值|*50% '
            },
            {
              title: '上年分类',
              detail: '按照上年12月综合规模全国排名1-30为一类，31-70为二类，71-150为三类，151-最后为四类'
            },
            {
              title: '实时分类',
              detail: '按照实时综合规模全国排名1-30为一类，31-70为二类，71-150为三类，151-最后为四类'
            },
            {
              title: '收入增长得分',
              // detail: '营业收入增长率达到6.5%时，得35分，每超过1个百分点加1分，线性加分，最多加7分； 营业收入增长率低于6.5%时，每低于1个百分点扣1分，线性扣分，最多扣7分'
              detail: '营业收入增长率达到6.5%时，得35分，每超过1个百分点加1分，线性加分，最多加7分； 营业收入增长率低于6.5%时，每低于1个百分点扣1分，线性扣分，最多扣7分。'
            },
            {
              title: '投资增收比得分',
              // detail: '投资增收比达到18%，得满分15分，每高于1个百分点加0.4分，最多加4分；投资增收比未达到18%,每低于1个百分点扣1分，线性扣分，扣完为止'
              detail: '投资增收比达到18%，得满分15分，每高于1个百分点加0.4分，最多加4分；投资增收比未达到18%,每低于1个百分点扣1分，线性扣分，扣完为止。'
            },
            {
              title: '资产报酬率改善得分',
              // detail: '与2020年相比，资产报酬率改善达到0.4个百分点，得满分50分，超过或低于0.4个百分点按如下规则加扣分：与2020年相比，资产报酬率改善超过0.4个百分点，每超过0.1个百分点，按以下规则线性加分，最多加10分：加分=（2020年资产报酬率本省值-4.5%)×5+1；与2020年相比，资产报酬率改善低于0.4个百分点，每低于0.1个百分点，按以下规则线性扣分，最多扣10分：扣分= (4.5%-2020年资产报酬率本省值)×5+1'
              detail: '与2020年相比，资产报酬率改善达到0.4个百分点，得满分50分，超过或低于0.4个百分点按如下规则加扣分：与2020年相比，资产报酬率改善超过0.4个百分点，每超过0.1个百分点，按以下规则线性加分，最多加10分：加分=（2020年资产报酬率本省值-4.5%)×5+1；与2020年相比，资产报酬率改善低于0.4个百分点，每低于0.1个百分点，按以下规则线性扣分，最多扣10分：扣分= (4.5%-2020年资产报酬率本省值)×5+1'
            },
            {
              title: '营收款欠款占收比扣分',
              detail: '营收款欠款比率小于或等于100%不扣分；营收款欠款比率超过100%，每高于10个百分点扣0.1分，不足10%的，线性扣分，最多扣5分。年底前回款超过95%的分公司减半扣分，其中营收款回款率=（本年1-12月累计已回款金额+次年1月已回款金额）/（年初未结算金额+本年1-12月累计应结算金额）×100%。'
            },
            {
              title: '代垫电费欠款比率扣分',
              detail: '代垫电费欠款比率小于或等于100%不扣分；代垫电费欠款比率超过100%，每高于10个百分点扣0.25分，不足10%的，线性扣分，最多扣5分。年底前回款超过95%的分公司减半扣分，其中代垫电费回款率=（本年1-12月累计已回款金额+次年1月已回款金额）/（年初未结算金额+本年1-12月累计应结算金额）×100%。'
            },
            {
              title: 'EBITDA率扣分',
              // detail: '与2020年相比，EBITDA率持平或上升的分公司不扣分；与2020年相比，EBITDA率下降的分公司，较2020年每下降1个百分点，按以下规则线性扣分，最多扣5分：扣分=（2020年EBITDA率全国平均值- 2020年EBITDA率本省值）×5+1；对于2020年高于全国平均EBITDA率水平的分公司，新增收入EBITDA率高于2020年全国平均值不扣分'
              detail: '与2020年相比，EBITDA率持平或上升的分公司不扣分；与2020年相比，EBITDA率下降的分公司，较2020年每下降1个百分点，按以下规则线性扣分，最多扣5分：扣分=（2020年EBITDA率全国平均值- 2020年EBITDA率本省值）×5+1；对于2020年高于全国平均EBITDA率水平的分公司，新增收入EBITDA率高于2020年全国平均值不扣分。'
            },
            {
              title: '总分',
              intro: '收入增长得分+投资增收比得分+资产报酬率改善得分+营收款欠款占收比扣分+代垫电费欠款比率扣分+EBITDA率扣分'
            },
            {
              title: '收入增长率(%)',
              intro: '营业收入增长率=（（本年营业收入完成值-运营商业务账龄超过一年的不含税应收营收款-两翼业务坏账准备本年净增额）-上年营业收入完成值）/上年营业收入完成值×100%，',
              detail: '其中：运营商业务账龄超过一年的不含税应收营收款是指运营商业务截至考核期末仍未回款的2020年及以前年度不含税应收营收款；两翼业务坏账准备本年净增额是指两翼业务按公司坏账准备管理办法在本年发生的坏账准备净增数额，以前年度已核销本年又收回的应收账款作为坏账准备转回视同收入增项处理；上年营业收入完成值以2020年财务报表决算审定数为比较基准值。\n'
            },
            {
              title: '投资增收比(%)',
              intro: '投资增收比=（2021年营业收入-2020年营业收入）/（2020年四季度资本性支出/2+2021年1至3季度资本性支出+2021年四季度资本性支出/2）×100%。',
              detail: '其中：资本性支出不含综合生产用房资本性支出；2021年1至3季度资本性支出中新增高铁、地铁和投资2000万元以上的大型网络覆盖项目等同4季度按一半计算，其他项目按全额计算; 安全整治项目投资中属于总部运营维护部核定的项目清单对应的2021年资本性支出，按50%剔除。注：其中北京、天津、河北、山西、内蒙古、辽宁、江苏、安徽、福建、江西、山东、河南、湖北、湖南、广东、广西、重庆、四川、陕西剔除能源收入及成本，其余省分不剔除\n'
            },
            {
              title: '资产报酬率(%)',
              intro: '资产报酬率=（利润总额+财务费用）/平均资产总额×100%。其中：平均资产总额=（上年末资产总额+本年末资产总额）/2。注：其中北京、天津、河北、山西、内蒙古、辽宁、江苏、安徽、福建、江西、山东、河南、湖北、湖南、广东、广西、重庆、四川、陕西剔除能源收入及成本，其余省分不剔除'
            },
            {
              title: '营收款欠款占收比(%)',
              intro:'营收款欠款比率=（∑（运营商业务本年各月1个月以上欠费余额）/12/运营商业务本年累计月平均出账含税收入）×运营商业务收入比重+（两翼业务累计欠费金额/两翼业务本年累计应收金额）×两翼业务收入比重。',
              detail: '其中:运营商业务坏账准备余额从各月累加计算的欠费余额中一次性剔除；两翼业务累计欠费金额为按合同约定收款条件确定的营收款欠费累计数扣除坏账准备余额后的净额。注：其中北京、天津、河北、山西、内蒙古、辽宁、江苏、安徽、福建、江西、山东、河南、湖北、湖南、广东、广西、重庆、四川、陕西剔除能源收入及成本，其余省分不剔除\n'
            },
            {
              title: '代垫电费欠款比率(%)',
              intro: '代垫电费欠款比率=（∑（本年各月一个月以上代垫电费应收款余额）/12 /本年累计月平均代垫电费额）×100%。'
            },
            {
              title: 'EBIDTA率(%)',
              intro: 'EBITDA率=（利润总额+折旧及摊销+财务费用）/营业收入完成值×100%。注：其中北京、天津、河北、山西、内蒙古、辽宁、江苏、安徽、福建、江西、山东、河南、湖北、湖南、广东、广西、重庆、四川、陕西剔除能源收入及成本，其余省分不剔除'
            },
            {
              title: 'EBIDTA',
              intro: 'EBITDA=利润总额+财务费用+折旧摊销 '
            },
          ];
          this.getCityData();
        }
      },
      loadPage(){
        if(this.areaId=='100000'){
          this.areaType = 0;
        }else if(this.areaId.substr(-4) == '0000'){
          this.areaType = 1;
        }else {
          this.areaType = 2;
        }
        this.pageLoading = true;
        if(this.tabActiveName == 'a'){
          this.getProvinceData();
        }else {
          this.cityTableData.page = 1;
          this.getCityData();
        }
        /*if(this.provinceTableData.data.length==0||this.cityTableData.data.length==0){
          this.pageLoading = false
        }*/
      },
      //按钮样式
      changeOptionClass(num,index){
        if(num==1){
          if(this.selectOptionData.orderOptionData.selectIndex == index){
            return 'option-page-btn--active';
          }
        }else {
          if(this.selectOptionData.classifyOptionData.selectIndex == index){
            return 'option-page-btn--active';
          }
        }
      },
      //按钮选择
      selectOptionChange(num,index){
        if(num==1){
          this.selectOptionData.orderOptionData.selectIndex = index;
        }else {
          this.selectOptionData.classifyOptionData.selectIndex = index;
        }
      },
      //条件确定按钮
      selectOptionClick(){
        this.selectOptionData.show = false;
        this.loadPage();
      },
      getProvinceData(){
        let params = {
          qry_sum_month: this.datePicker.selectDate,
          orderBy:this.selectOptionData.orderOptionData.selectIndex
        }
        this.$http.post('/api/newTower/assessmentRank/qryProvinceData', params).then(data => {
          this.provinceTableData.data = data.rows;
          this.provinceTableData.show = true;
          this.pageLoading = false
        })
      },
      getCityData(){
        let params = {
          qry_sum_month: this.datePicker.selectDate,
          orderBy:this.selectOptionData.orderOptionData.selectIndex,
          pageSize:100,
          pageNum:this.cityTableData.page
        }
        let state_cd , city_cd ;
        if(this.areaType==2){
          state_cd = (this.areaId+'').substr(0,2)+'0000';
          city_cd = this.areaId;
          params.state_cd = state_cd;
          params.city_cd = city_cd;
        }else {
          state_cd = this.areaId;
          params.state_cd = state_cd;
        }

        let categoryIndex = this.selectOptionData.classifyOptionData.selectIndex;
        if(categoryIndex != 0){
          params.category=this.selectOptionData.classifyOptionData.data[categoryIndex].text;
        }
        this.$http.post('/api/newTower/assessmentRank/qryCityData', params).then(data => {
          this.cityTableData.data = [];
          this.cityTableData.total = Math.ceil(data.total / 100);
          this.cityTableData.data = data.rows;
          this.cityTableData.show = true;
          this.pageLoading = false
        })
      },
      nextText(){
        this.getCityData();
      },

    },
    created() {
      this.recordLogs();
      this.getMaxMinMonth().then(res => {
        if (res == 'ok') {
          this.getAreaInfo();
          this.initPage();
        }
      })
    }
  }
</script>
<style lang="scss" scoped>
  .pd-aside {
    padding: 0 12px 0 12px;
  }
  .option__btn{
    height: 31px;
    width: 50px;
    background:#ff4b47;
    border-radius: 3px;
    text-align: center;
    line-height: 30px;
    color: #ffffff;
    font-size: 14px;
  }
  .option-page{
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: RGBA(255,255,255,0.4);
    z-index: 200;

    &-main{
       position: absolute;
       width: 260px;
       height: 280px;
       padding: 10px 20px;
       background: #fff;
       left: 59%;
       top: 52%;
       -webkit-transform: translate(-50%, -50%);
       transform: translate(-50%, -50%);
       border-radius: 5px;
       background: #fff;
       -webkit-box-shadow: 2px 2px 5px #909090;
     }
     &-title{
      font-size: 14px;
      font-weight: bold;
      height: 30px;
      line-height: 30px;
      }
      &-tab{
        width: 75px;
        height: 30px;
        padding: 5px 10px 5px 0px;
        display: inline-block;

       }
       &-btn{
        border-radius: 2px;
        background: #f4f4f4;
        height: 100%;
        text-align: center;
        line-height: 30px;
        color: #666666;
        &--active{
           background: #fbe6e7;
           color: #ff4b47;
         }
        }
    &-define{
      position: absolute;
      bottom: 15px;
      left: calc(50% - 40px);
      width: 80px;
      height: 30px;
      background: #ff4b47;
      color: #fff;
      text-align: center;
      line-height: 30px;
      font-size: 15px;
      border-radius: 15px;
     }
  }
  /deep/ .van-pagination__item{
    color:#ff716b;
  }
  /deep/ .van-pagination__item--disabled {
    color: #646566;
  }
  /deep/ .van-pagination__item:active{
    color:#ff716b;
    background:none;
  }
  .page-loading {
    z-index: 100!important;

  .wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
  }
  }
</style>
